package co.gov.medellin.ssti.sub.model.service.impl;

import java.util.Collection;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import co.gov.medellin.ssti.sub.model.dao.RepDetBeneficiarioDAO;
import co.gov.medellin.ssti.sub.model.dao.exception.DAOException;
import co.gov.medellin.ssti.sub.model.service.RepDetBeneficiarioService;
import co.gov.medellin.ssti.sub.model.vo.BeneficiarioVO;
import co.gov.medellin.ssti.sub.model.vo.CondicionConsultaVO;
import co.gov.medellin.ssti.sub.model.vo.RepAtributoVO;
import co.gov.medellin.ssti.sub.model.vo.RepDetBeneficiarioVO;

@Service
public class RepDetBeneficiarioServiceImpl implements RepDetBeneficiarioService {
	@Autowired
	RepDetBeneficiarioDAO repDetBeneficiarioDAOImpl2;

	public int findCantidadBeneficiariosByCriteria(RepDetBeneficiarioVO criteria) {
		try {
			return repDetBeneficiarioDAOImpl2
					.findCantidadBeneficiariosByCriteria(criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Integer findCantidadBeneficiariosByFiltrosAndCriteria(
			List<CondicionConsultaVO> filtros, RepDetBeneficiarioVO criteria) {
		try {
			return repDetBeneficiarioDAOImpl2
					.findCantidadBeneficiariosByFiltrosAndCriteria(filtros,
							criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<BeneficiarioVO> findReporte(
			Collection<RepAtributoVO> atributosGenericos,
			Collection<CondicionConsultaVO> filtros,
			RepDetBeneficiarioVO criteria) {
		try {
			return repDetBeneficiarioDAOImpl2.findReporte(atributosGenericos,
					filtros, criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public RepDetBeneficiarioVO findFiltros(
			RepDetBeneficiarioVO repDetBeneficiarioVO) {
		try {
			return repDetBeneficiarioDAOImpl2.findFiltros(repDetBeneficiarioVO);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

}
